// 封装全局共用的方法

// 向 sessionStorage 中存数据
function setItem(name, data) {
  window.sessionStorage.setItem(name, JSON.stringify(data))
}

// 从 sessionStorage 中取数据
function getItem(name) {
  return JSON.parse(window.sessionStorage.getItem(name))
}

// 清空 sessionStorage
function clear() {
  window.sessionStorage.clear();
}

// 给对象(按需)赋值
function objToValue(obj, valObj) {
  for (let k in obj) {
    obj[k] = valObj[k]
  }
}

// 封装键盘事件
// keycode:键值,13为回车事件,37为向左键,38为向上键,39为向右键,40为向下键,32为空格键;  calBack为要执行的函数名 
function onKeyDown(keyCode, calBack) {
  document.onkeydown = (e) => {
    let key = window.event.keyCode;
    if (key == keyCode) {
      calBack()
    }
  };
}

// 取消键盘事件
function cancelKeyDown(keyCode) {
  document.onkeydown = (e) => {
    let key = window.event.keyCode;
    if (key == keyCode) {
      return false;
    }
  };
}

// 格式化时间
function formatTime(type) {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth() + 1;
  var nData = now.getDate();
  var H = now.getHours();
  var M = now.getMinutes();
  var S = now.getSeconds();
  switch (type) {
    case 'yyyy-MM-dd HH:mm:ss':
      return `${year}-${month<10?('0' + month) : month}-${nData < 10 ? ('0' + nData) : nData} ${H< 10 ? ('0' + H) : H}:${M < 10 ? ('0' + M) : M}:${S < 10 ? ('0' + S) : S}`
    case 'yyyy-MM-dd':
      return `${year}-${month<10?('0' + month) : month}-${nData < 10 ? ('0' + nData) : nData}`
    default:
      break;
  }
}

export default {
  setItem,
  getItem,
  clear,
  objToValue,
  formatTime,
  onKeyDown,
  cancelKeyDown
}